package models

import "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime"

type VpcRequest struct {
	Name        string `json:"name"`        // 功能说明：虚拟私有云名称 取值范围：0-64个字符，支持数字、字母、中文、_(下划线)、-（中划线）、.（点） 约束：如果名称不为空，则同一个租户下的名称不能重复
	Cidr        string `json:"cidr"`        // 功能说明：虚拟私有云下可用子网的范围 例如： 10.10.0.0/16
	Description string `json:"description"` // 描述
}

type VpcResponse struct {
	Id          string          `json:"id"`          // 功能说明：虚拟私有云ID 取值范围：带\"-\"的UUID
	Name        string          `json:"name"`        // 功能说明：虚拟私有云名称 取值范围：0-64个字符，支持数字、字母、中文、_(下划线)、-（中划线）、.（点） 约束：如果名称不为空，则同一个租户下的名称不能重复
	Cidr        string          `json:"cidr"`        // 功能说明：虚拟私有云下可用子网的范围 取值范围： - 10.0.0.0/8~10.255.255.240/28 - 172.16.0.0/12 ~ 172.31.255.240/28 - 192.168.0.0/16 ~ 192.168.255.240/28 不指定cidr时，默认值为空 约束：必须是ipv4 cidr格式，例如:192.168.0.0/16
	Description string          `json:"description"` // 功能说明：虚拟私有云的描述 取值范围：0-255个字符，不能包含“<”和“>”
	Status      string          `json:"status"`      // 功能说明：虚拟私有云的状态 取值范围： - CREATING：创建中 - OK：创建成功
	CreatedAt   sdktime.SdkTime `json:"created_at"`  // 功能说明：资源创建UTC时间 格式：yyyy-MM-ddTHH:mm:ss
	UpdatedAt   sdktime.SdkTime `json:"updated_at"`  // 功能说明：资源更新UTC时间 格式：yyyy-MM-ddTHH:mm:ss
}

type SubnetResponse struct {
	Id               string           `json:"id"`                // 子网ID
	Name             string           `json:"name"`              // 功能说明：子网名称 取值范围：1-64个字符，支持数字、字母、中文、_(下划线)、-（中划线）、.（点）
	Description      string           `json:"description"`       // 功能说明：子网描述 取值范围：0-255个字符，不能包含“<”和“>”。
	Cidr             string           `json:"cidr"`              // 功能说明：子网的网段 取值范围：必须在vpc对应cidr范围内 约束：必须是cidr格式。掩码长度不能大于28
	GatewayIp        string           `json:"gateway_ip"`        // 功能说明：子网的网关 取值范围：子网网段中的IP地址 约束：必须是ip格式
	DnsList          []string         `json:"dnsList"`           // 子网dns服务器地址列表
	AvailabilityZone string           `json:"availability_zone"` // 子网所在的可用区标识
	VpcId            string           `json:"vpc_id"`            // 子网所在VPC标识
	Status           string           `json:"status"`            // 功能说明：子网的状态 取值范围： - ACTIVE：表示子网已挂载到ROUTER上 - UNKNOWN：表示子网还未挂载到ROUTER上 - ERROR：表示子网状态故障
	CreatedAt        *sdktime.SdkTime `json:"created_at"`        // 功能说明：资源创建UTC时间 格式：yyyy-MM-ddTHH:mm:ss
	UpdatedAt        *sdktime.SdkTime `json:"updated_at"`        // 功能说明：资源更新UTC时间 格式：yyyy-MM-ddTHH:mm:ss
}

type NatRequest struct {
	Name        string `json:"name"`
	VpcId       string `json:"vpcId"`
	Spec        string `json:"spec"` // 规格， 1,2,3,4
	SubnetId    string `json:"subnetId"`
	Description string `json:"description"` // 描述
}

type NatResponse struct {
}
